<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>


    <script>
        //  in 关键字
        // 第一种用法  for...in
        var obj = {
            name: 'jack',
            age: 18,
            sex: '男'
        }
        // 遍历对象属性名
        for (var k in obj) {
            console.log(k, obj[k]); //遍历属性名和属性值
        }

        // 第二种用法 判断 属性名是否存在对象中
        // 可以判断 对象中是否存在该属性
        /*
         规则： 字符串 in 对象 （返回结果为 bool值）
        */ 
        console.log( 'name' in obj); // 如果返回 true 就表示 obj 对象中有 name 这个属性
        console.log( 'sayHi' in obj);  // false 
    
        
        var arr = ['1', '3', '6'];
        // 如果使用  字符 in 数组 （字符就表示 数组的 索引）
        console.log( 6 in arr); // false
        console.log( 2 in arr); // true  表示该索引存在



        //  delete 用法
        // 可以删除 对象属性
        // 还可以删除 没有使用 var 定义的变量

        a = 20;
        console.log(a); // 20
         console.log(delete a); // true
        //  console.log(a); // 报错 a is not defined 找不到a
        console.log(window.a); // undefined; window没有 a 这个属性 可以得到 undefined        
         

        // 使用 var 定义的变量 delete 删除不了
         var b = 30;
         console.log(b); // 30
         console.log(delete b); // false
         console.log(b); // 30
         
         
        //  delete 删除变量或者属性 会有一个返回值 ，这个值是一个 bool 值 true表示删除成功， false表示删除失败
        //注意： 使用 var 定义的变量 delete 删除不了


    </script>
    
</body>
</html>